package org.Shiikong_Memory.SakuraBlockFrame.CommandFramework;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 这是一个注解，用于标记命令框架中的子命令方法。
 * 被此注解标记的方法会被命令框架识别并处理，可指定子命令的路径、权限和描述信息。
 *
 * @author Shiikong_Memory
 * @version 1.0
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SubCommand {
    /**
     * 指定子命令的路径，用于唯一标识一个子命令。
     * 该路径在命令框架中用于匹配和执行相应的方法。
     * @return 子命令的路径字符串
     */
    String path();
    /**
     * 指定执行该子命令所需的权限。
     * 如果未指定，默认值为空字符串，表示不需要额外权限。
     * @return 执行子命令所需的权限字符串
     */
    String permission() default "";
    /**
     * 提供子命令的描述信息，可用于帮助信息显示等场景。
     * 如果未指定，默认值为空字符串。
     * @return 子命令的描述信息字符串
     */
    String description() default "";
}